package projeto;

import org.junit.*;

public class TestaLivro {

	Livro livro1, livro2, livro3, livro4;  
	
	@Before
	public void criaLivro() throws Exception{
	
						
		livro1 = new Livro("Calculo Diferencial e integral 1", "Thomas", "Teste", 1999, "Exatas");
		livro2 = new Livro("Think Python", "Downey", "O'Reilly", 2012, "Programacao");
		livro3 = new Livro("Algebra Vetorial e Geometria Analitica", "Paulo Winterle", "Teste2", 1997, "Exatas");
		livro4 = new Livro("A grande guerra", "Rafael Guerra", "Lira", 1995, "Historia");
	}
	
	@Test
	public void testaGetGenero(){
		Assert.assertEquals("Exatas", livro1.getGenero());
		Assert.assertEquals("Programacao", livro2.getGenero());
		Assert.assertEquals("Exatas", livro3.getGenero());
		Assert.assertEquals("Historia", livro4.getGenero());
				
	}
	
	@Test
	public void testaGetEditora(){
		Assert.assertEquals("Teste", livro1.getEditora());
		Assert.assertEquals("O'Reilly", livro2.getEditora());
		Assert.assertEquals("Teste2", livro3.getEditora());
		Assert.assertEquals("Lira", livro4.getEditora());
	}
	
	@Test
	public void testaGetAnoPublicacao(){
		Assert.assertEquals(1999, livro1.getAnoPublicacao());
		Assert.assertEquals(2012, livro2.getAnoPublicacao());
		Assert.assertEquals(1997, livro3.getAnoPublicacao());
		Assert.assertEquals(1995, livro4.getAnoPublicacao());
	}
	
	@Test
	public void testaSetEstado(){
		Assert.assertTrue(livro1.getEstado());
		Assert.assertTrue(livro2.getEstado());
		Assert.assertTrue(livro3.getEstado());
		Assert.assertTrue(livro4.getEstado());
		
		livro1.setOcupado(false);
		livro2.setOcupado(false);
		Assert.assertFalse(livro1.getEstado());
		Assert.assertFalse(livro2.getEstado());
		
		livro1.setOcupado(true);
		livro2.setOcupado(true);
		Assert.assertTrue(livro1.getEstado());
		Assert.assertTrue(livro2.getEstado());
		
	}
	
	/*
	 * @Test
    public void testaCriaLivro() throws Exception{
        try{
            new Livro(null, "Bruno Henrique", "Monte Carlo", 2003);
        }catch(Exception e){
            Assert.assertEquals("Nome do titulo do livro invalido.", e.getMessage());
        }
        try{
            new Livro("" , "Renato Souza", "Abrantes", 1889);
        }catch(Exception e){
            Assert.assertEquals("Nome do titulo do livro invalido.", e.getMessage());
        }
        try{
            new Livro("Aprendendo a ler e escrever", "", "Monte Carlo", 1985);
        }catch(Exception e){
            Assert.assertEquals("Nome do autor do livro invalido.", e.getMessage());
        }
        try{
            new Livro("Novos tempos", null, "Monte Carlo", 2003);
        }catch(Exception e){
            Assert.assertEquals("Nome do autor do livro invalido.", e.getMessage());
        }
        try{
            new Livro("O misterio", "Carlos Henrique", null , 2000);
        }catch(Exception e){
            Assert.assertEquals("Nome da editora do livro invalida.", e.getMessage());
        }
        try{
            new Livro("Como cozinhar" , "Renata Marinho", "", 2007);
        }catch(Exception e){
            Assert.assertEquals("Nome da editora do livro invalida.", e.getMessage());
        }
        try{
            new Livro("Amebas", "Ulysses Nobrega", "Campinense", -1234);
        }catch(Exception e){
            Assert.assertEquals("Ano de publicacao invalido.", e.getMessage());
        }
        try{
            new Livro("A grande guerra", "Rafael Guerra", "Lira", 0);
        }catch(Exception e){
            Assert.assertEquals("Ano de publicacao invalido.", e.getMessage());
        }
	 */
	

}
